/*
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: MessageTest.proto

package com.dtstack.chunjun.format.protobuf.test;

public final class MessageTestOuterClass {
    private MessageTestOuterClass() {}

    public static void registerAllExtensions(com.google.protobuf.ExtensionRegistryLite registry) {}

    public static void registerAllExtensions(com.google.protobuf.ExtensionRegistry registry) {
        registerAllExtensions((com.google.protobuf.ExtensionRegistryLite) registry);
    }

    public interface VariantOrBuilder
            extends
            // @@protoc_insertion_point(interface_extends:com.dtstack.chunjun.format.protobuf.test.Variant)
            com.google.protobuf.MessageOrBuilder {

        /** <code>bool boolx = 1;</code> */
        boolean getBoolx();

        /** <code>bool ValueBool2 = 2;</code> */
        boolean getValueBool2();

        /** <code>int32 ValueInt32 = 3;</code> */
        int getValueInt32();

        /** <code>bool booly = 4;</code> */
        boolean getBooly();

        public Variant.Value2Case getValue2Case();
    }
    /** Protobuf type {@code com.dtstack.chunjun.format.protobuf.test.Variant} */
    public static final class Variant extends com.google.protobuf.GeneratedMessageV3
            implements
            // @@protoc_insertion_point(message_implements:com.dtstack.chunjun.format.protobuf.test.Variant)
            VariantOrBuilder {
        // Use Variant.newBuilder() to construct.
        private Variant(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
            super(builder);
        }

        private Variant() {
            boolx_ = false;
            booly_ = false;
        }

        @Override
        public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
            return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
        }

        private Variant(
                com.google.protobuf.CodedInputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
            this();
            int mutable_bitField0_ = 0;
            try {
                boolean done = false;
                while (!done) {
                    int tag = input.readTag();
                    switch (tag) {
                        case 0:
                            done = true;
                            break;
                        default:
                            {
                                if (!input.skipField(tag)) {
                                    done = true;
                                }
                                break;
                            }
                        case 8:
                            {
                                boolx_ = input.readBool();
                                break;
                            }
                        case 16:
                            {
                                value2Case_ = 2;
                                value2_ = input.readBool();
                                break;
                            }
                        case 24:
                            {
                                value2Case_ = 3;
                                value2_ = input.readInt32();
                                break;
                            }
                        case 32:
                            {
                                booly_ = input.readBool();
                                break;
                            }
                    }
                }
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                throw e.setUnfinishedMessage(this);
            } catch (java.io.IOException e) {
                throw new com.google.protobuf.InvalidProtocolBufferException(e)
                        .setUnfinishedMessage(this);
            } finally {
                makeExtensionsImmutable();
            }
        }

        public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
            return MessageTestOuterClass
                    .internal_static_com_dtstack_chunjun_format_protobuf_test_Variant_descriptor;
        }

        protected FieldAccessorTable internalGetFieldAccessorTable() {
            return MessageTestOuterClass
                    .internal_static_com_dtstack_chunjun_format_protobuf_test_Variant_fieldAccessorTable
                    .ensureFieldAccessorsInitialized(Variant.class, Builder.class);
        }

        private int value2Case_ = 0;
        private Object value2_;

        public enum Value2Case implements com.google.protobuf.Internal.EnumLite {
            VALUEBOOL2(2),
            VALUEINT32(3),
            VALUE2_NOT_SET(0);
            private final int value;

            private Value2Case(int value) {
                this.value = value;
            }
            /** @deprecated Use {@link #forNumber(int)} instead. */
            @Deprecated
            public static Value2Case valueOf(int value) {
                return forNumber(value);
            }

            public static Value2Case forNumber(int value) {
                switch (value) {
                    case 2:
                        return VALUEBOOL2;
                    case 3:
                        return VALUEINT32;
                    case 0:
                        return VALUE2_NOT_SET;
                    default:
                        return null;
                }
            }

            public int getNumber() {
                return this.value;
            }
        };

        public Value2Case getValue2Case() {
            return Value2Case.forNumber(value2Case_);
        }

        public static final int BOOLX_FIELD_NUMBER = 1;
        private boolean boolx_;
        /** <code>bool boolx = 1;</code> */
        public boolean getBoolx() {
            return boolx_;
        }

        public static final int VALUEBOOL2_FIELD_NUMBER = 2;
        /** <code>bool ValueBool2 = 2;</code> */
        public boolean getValueBool2() {
            if (value2Case_ == 2) {
                return (Boolean) value2_;
            }
            return false;
        }

        public static final int VALUEINT32_FIELD_NUMBER = 3;
        /** <code>int32 ValueInt32 = 3;</code> */
        public int getValueInt32() {
            if (value2Case_ == 3) {
                return (Integer) value2_;
            }
            return 0;
        }

        public static final int BOOLY_FIELD_NUMBER = 4;
        private boolean booly_;
        /** <code>bool booly = 4;</code> */
        public boolean getBooly() {
            return booly_;
        }

        private byte memoizedIsInitialized = -1;

        public final boolean isInitialized() {
            byte isInitialized = memoizedIsInitialized;
            if (isInitialized == 1) return true;
            if (isInitialized == 0) return false;

            memoizedIsInitialized = 1;
            return true;
        }

        public void writeTo(com.google.protobuf.CodedOutputStream output)
                throws java.io.IOException {
            if (boolx_ != false) {
                output.writeBool(1, boolx_);
            }
            if (value2Case_ == 2) {
                output.writeBool(2, (boolean) ((Boolean) value2_));
            }
            if (value2Case_ == 3) {
                output.writeInt32(3, (int) ((Integer) value2_));
            }
            if (booly_ != false) {
                output.writeBool(4, booly_);
            }
        }

        public int getSerializedSize() {
            int size = memoizedSize;
            if (size != -1) return size;

            size = 0;
            if (boolx_ != false) {
                size += com.google.protobuf.CodedOutputStream.computeBoolSize(1, boolx_);
            }
            if (value2Case_ == 2) {
                size +=
                        com.google.protobuf.CodedOutputStream.computeBoolSize(
                                2, (boolean) ((Boolean) value2_));
            }
            if (value2Case_ == 3) {
                size +=
                        com.google.protobuf.CodedOutputStream.computeInt32Size(
                                3, (int) ((Integer) value2_));
            }
            if (booly_ != false) {
                size += com.google.protobuf.CodedOutputStream.computeBoolSize(4, booly_);
            }
            memoizedSize = size;
            return size;
        }

        private static final long serialVersionUID = 0L;

        @Override
        public boolean equals(final Object obj) {
            if (obj == this) {
                return true;
            }
            if (!(obj instanceof Variant)) {
                return super.equals(obj);
            }
            Variant other = (Variant) obj;

            boolean result = true;
            result = result && (getBoolx() == other.getBoolx());
            result = result && (getBooly() == other.getBooly());
            result = result && getValue2Case().equals(other.getValue2Case());
            if (!result) return false;
            switch (value2Case_) {
                case 2:
                    result = result && (getValueBool2() == other.getValueBool2());
                    break;
                case 3:
                    result = result && (getValueInt32() == other.getValueInt32());
                    break;
                case 0:
                default:
            }
            return result;
        }

        @Override
        public int hashCode() {
            if (memoizedHashCode != 0) {
                return memoizedHashCode;
            }
            int hash = 41;
            hash = (19 * hash) + getDescriptor().hashCode();
            hash = (37 * hash) + BOOLX_FIELD_NUMBER;
            hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getBoolx());
            hash = (37 * hash) + BOOLY_FIELD_NUMBER;
            hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getBooly());
            switch (value2Case_) {
                case 2:
                    hash = (37 * hash) + VALUEBOOL2_FIELD_NUMBER;
                    hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getValueBool2());
                    break;
                case 3:
                    hash = (37 * hash) + VALUEINT32_FIELD_NUMBER;
                    hash = (53 * hash) + getValueInt32();
                    break;
                case 0:
                default:
            }
            hash = (29 * hash) + unknownFields.hashCode();
            memoizedHashCode = hash;
            return hash;
        }

        public static Variant parseFrom(java.nio.ByteBuffer data)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static Variant parseFrom(
                java.nio.ByteBuffer data,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static Variant parseFrom(com.google.protobuf.ByteString data)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static Variant parseFrom(
                com.google.protobuf.ByteString data,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static Variant parseFrom(byte[] data)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static Variant parseFrom(
                byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static Variant parseFrom(java.io.InputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
        }

        public static Variant parseFrom(
                java.io.InputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
                    PARSER, input, extensionRegistry);
        }

        public static Variant parseDelimitedFrom(java.io.InputStream input)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
                    PARSER, input);
        }

        public static Variant parseDelimitedFrom(
                java.io.InputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
                    PARSER, input, extensionRegistry);
        }

        public static Variant parseFrom(com.google.protobuf.CodedInputStream input)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
        }

        public static Variant parseFrom(
                com.google.protobuf.CodedInputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
                    PARSER, input, extensionRegistry);
        }

        public Builder newBuilderForType() {
            return newBuilder();
        }

        public static Builder newBuilder() {
            return DEFAULT_INSTANCE.toBuilder();
        }

        public static Builder newBuilder(Variant prototype) {
            return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
        }

        public Builder toBuilder() {
            return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
        }

        @Override
        protected Builder newBuilderForType(BuilderParent parent) {
            Builder builder = new Builder(parent);
            return builder;
        }
        /** Protobuf type {@code com.dtstack.chunjun.format.protobuf.test.Variant} */
        public static final class Builder
                extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
                implements
                // @@protoc_insertion_point(builder_implements:com.dtstack.chunjun.format.protobuf.test.Variant)
                VariantOrBuilder {
            public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
                return MessageTestOuterClass
                        .internal_static_com_dtstack_chunjun_format_protobuf_test_Variant_descriptor;
            }

            protected FieldAccessorTable internalGetFieldAccessorTable() {
                return MessageTestOuterClass
                        .internal_static_com_dtstack_chunjun_format_protobuf_test_Variant_fieldAccessorTable
                        .ensureFieldAccessorsInitialized(Variant.class, Builder.class);
            }

            // Construct using
            // com.dtstack.chunjun.format.protobuf.test.MessageTestOuterClass.Variant.newBuilder()
            private Builder() {
                maybeForceBuilderInitialization();
            }

            private Builder(BuilderParent parent) {
                super(parent);
                maybeForceBuilderInitialization();
            }

            private void maybeForceBuilderInitialization() {
                if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {}
            }

            public Builder clear() {
                super.clear();
                boolx_ = false;

                booly_ = false;

                value2Case_ = 0;
                value2_ = null;
                return this;
            }

            public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
                return MessageTestOuterClass
                        .internal_static_com_dtstack_chunjun_format_protobuf_test_Variant_descriptor;
            }

            public Variant getDefaultInstanceForType() {
                return Variant.getDefaultInstance();
            }

            public Variant build() {
                Variant result = buildPartial();
                if (!result.isInitialized()) {
                    throw newUninitializedMessageException(result);
                }
                return result;
            }

            public Variant buildPartial() {
                Variant result = new Variant(this);
                result.boolx_ = boolx_;
                if (value2Case_ == 2) {
                    result.value2_ = value2_;
                }
                if (value2Case_ == 3) {
                    result.value2_ = value2_;
                }
                result.booly_ = booly_;
                result.value2Case_ = value2Case_;
                onBuilt();
                return result;
            }

            public Builder clone() {
                return (Builder) super.clone();
            }

            public Builder setField(
                    com.google.protobuf.Descriptors.FieldDescriptor field, Object value) {
                return (Builder) super.setField(field, value);
            }

            public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
                return (Builder) super.clearField(field);
            }

            public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
                return (Builder) super.clearOneof(oneof);
            }

            public Builder setRepeatedField(
                    com.google.protobuf.Descriptors.FieldDescriptor field,
                    int index,
                    Object value) {
                return (Builder) super.setRepeatedField(field, index, value);
            }

            public Builder addRepeatedField(
                    com.google.protobuf.Descriptors.FieldDescriptor field, Object value) {
                return (Builder) super.addRepeatedField(field, value);
            }

            public Builder mergeFrom(com.google.protobuf.Message other) {
                if (other instanceof Variant) {
                    return mergeFrom((Variant) other);
                } else {
                    super.mergeFrom(other);
                    return this;
                }
            }

            public Builder mergeFrom(Variant other) {
                if (other == Variant.getDefaultInstance()) return this;
                if (other.getBoolx() != false) {
                    setBoolx(other.getBoolx());
                }
                if (other.getBooly() != false) {
                    setBooly(other.getBooly());
                }
                switch (other.getValue2Case()) {
                    case VALUEBOOL2:
                        {
                            setValueBool2(other.getValueBool2());
                            break;
                        }
                    case VALUEINT32:
                        {
                            setValueInt32(other.getValueInt32());
                            break;
                        }
                    case VALUE2_NOT_SET:
                        {
                            break;
                        }
                }
                onChanged();
                return this;
            }

            public final boolean isInitialized() {
                return true;
            }

            public Builder mergeFrom(
                    com.google.protobuf.CodedInputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws java.io.IOException {
                Variant parsedMessage = null;
                try {
                    parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    parsedMessage = (Variant) e.getUnfinishedMessage();
                    throw e.unwrapIOException();
                } finally {
                    if (parsedMessage != null) {
                        mergeFrom(parsedMessage);
                    }
                }
                return this;
            }

            private int value2Case_ = 0;
            private Object value2_;

            public Value2Case getValue2Case() {
                return Value2Case.forNumber(value2Case_);
            }

            public Builder clearValue2() {
                value2Case_ = 0;
                value2_ = null;
                onChanged();
                return this;
            }

            private boolean boolx_;
            /** <code>bool boolx = 1;</code> */
            public boolean getBoolx() {
                return boolx_;
            }
            /** <code>bool boolx = 1;</code> */
            public Builder setBoolx(boolean value) {

                boolx_ = value;
                onChanged();
                return this;
            }
            /** <code>bool boolx = 1;</code> */
            public Builder clearBoolx() {

                boolx_ = false;
                onChanged();
                return this;
            }

            /** <code>bool ValueBool2 = 2;</code> */
            public boolean getValueBool2() {
                if (value2Case_ == 2) {
                    return (Boolean) value2_;
                }
                return false;
            }
            /** <code>bool ValueBool2 = 2;</code> */
            public Builder setValueBool2(boolean value) {
                value2Case_ = 2;
                value2_ = value;
                onChanged();
                return this;
            }
            /** <code>bool ValueBool2 = 2;</code> */
            public Builder clearValueBool2() {
                if (value2Case_ == 2) {
                    value2Case_ = 0;
                    value2_ = null;
                    onChanged();
                }
                return this;
            }

            /** <code>int32 ValueInt32 = 3;</code> */
            public int getValueInt32() {
                if (value2Case_ == 3) {
                    return (Integer) value2_;
                }
                return 0;
            }
            /** <code>int32 ValueInt32 = 3;</code> */
            public Builder setValueInt32(int value) {
                value2Case_ = 3;
                value2_ = value;
                onChanged();
                return this;
            }
            /** <code>int32 ValueInt32 = 3;</code> */
            public Builder clearValueInt32() {
                if (value2Case_ == 3) {
                    value2Case_ = 0;
                    value2_ = null;
                    onChanged();
                }
                return this;
            }

            private boolean booly_;
            /** <code>bool booly = 4;</code> */
            public boolean getBooly() {
                return booly_;
            }
            /** <code>bool booly = 4;</code> */
            public Builder setBooly(boolean value) {

                booly_ = value;
                onChanged();
                return this;
            }
            /** <code>bool booly = 4;</code> */
            public Builder clearBooly() {

                booly_ = false;
                onChanged();
                return this;
            }

            public final Builder setUnknownFields(
                    final com.google.protobuf.UnknownFieldSet unknownFields) {
                return this;
            }

            public final Builder mergeUnknownFields(
                    final com.google.protobuf.UnknownFieldSet unknownFields) {
                return this;
            }

            // @@protoc_insertion_point(builder_scope:com.dtstack.chunjun.format.protobuf.test.Variant)
        }

        // @@protoc_insertion_point(class_scope:com.dtstack.chunjun.format.protobuf.test.Variant)
        private static final Variant DEFAULT_INSTANCE;

        static {
            DEFAULT_INSTANCE = new Variant();
        }

        public static Variant getDefaultInstance() {
            return DEFAULT_INSTANCE;
        }

        private static final com.google.protobuf.Parser<Variant> PARSER =
                new com.google.protobuf.AbstractParser<Variant>() {
                    public Variant parsePartialFrom(
                            com.google.protobuf.CodedInputStream input,
                            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                            throws com.google.protobuf.InvalidProtocolBufferException {
                        return new Variant(input, extensionRegistry);
                    }
                };

        public static com.google.protobuf.Parser<Variant> parser() {
            return PARSER;
        }

        @Override
        public com.google.protobuf.Parser<Variant> getParserForType() {
            return PARSER;
        }

        public Variant getDefaultInstanceForType() {
            return DEFAULT_INSTANCE;
        }
    }

    public interface MessageItemOrBuilder
            extends
            // @@protoc_insertion_point(interface_extends:com.dtstack.chunjun.format.protobuf.test.MessageItem)
            com.google.protobuf.MessageOrBuilder {

        /**
         *
         *
         * <pre>
         * 默认optional
         * </pre>
         *
         * <code>string TagName = 1;</code>
         */
        String getTagName();
        /**
         *
         *
         * <pre>
         * 默认optional
         * </pre>
         *
         * <code>string TagName = 1;</code>
         */
        com.google.protobuf.ByteString getTagNameBytes();

        /** <code>.com.dtstack.chunjun.format.protobuf.test.Variant TagValue = 2;</code> */
        boolean hasTagValue();
        /** <code>.com.dtstack.chunjun.format.protobuf.test.Variant TagValue = 2;</code> */
        Variant getTagValue();
        /** <code>.com.dtstack.chunjun.format.protobuf.test.Variant TagValue = 2;</code> */
        VariantOrBuilder getTagValueOrBuilder();

        /** <code>map&lt;string, string&gt; ExValues = 3;</code> */
        int getExValuesCount();
        /** <code>map&lt;string, string&gt; ExValues = 3;</code> */
        boolean containsExValues(String key);
        /** Use {@link #getExValuesMap()} instead. */
        @Deprecated
        java.util.Map<String, String> getExValues();
        /** <code>map&lt;string, string&gt; ExValues = 3;</code> */
        java.util.Map<String, String> getExValuesMap();
        /** <code>map&lt;string, string&gt; ExValues = 3;</code> */
        String getExValuesOrDefault(String key, String defaultValue);
        /** <code>map&lt;string, string&gt; ExValues = 3;</code> */
        String getExValuesOrThrow(String key);
    }
    /** Protobuf type {@code com.dtstack.chunjun.format.protobuf.test.MessageItem} */
    public static final class MessageItem extends com.google.protobuf.GeneratedMessageV3
            implements
            // @@protoc_insertion_point(message_implements:com.dtstack.chunjun.format.protobuf.test.MessageItem)
            MessageItemOrBuilder {
        // Use MessageItem.newBuilder() to construct.
        private MessageItem(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
            super(builder);
        }

        private MessageItem() {
            tagName_ = "";
        }

        @Override
        public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
            return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
        }

        private MessageItem(
                com.google.protobuf.CodedInputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
            this();
            int mutable_bitField0_ = 0;
            try {
                boolean done = false;
                while (!done) {
                    int tag = input.readTag();
                    switch (tag) {
                        case 0:
                            done = true;
                            break;
                        default:
                            {
                                if (!input.skipField(tag)) {
                                    done = true;
                                }
                                break;
                            }
                        case 10:
                            {
                                String s = input.readStringRequireUtf8();

                                tagName_ = s;
                                break;
                            }
                        case 18:
                            {
                                Variant.Builder subBuilder = null;
                                if (tagValue_ != null) {
                                    subBuilder = tagValue_.toBuilder();
                                }
                                tagValue_ = input.readMessage(Variant.parser(), extensionRegistry);
                                if (subBuilder != null) {
                                    subBuilder.mergeFrom(tagValue_);
                                    tagValue_ = subBuilder.buildPartial();
                                }

                                break;
                            }
                        case 26:
                            {
                                if (!((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
                                    exValues_ =
                                            com.google.protobuf.MapField.newMapField(
                                                    ExValuesDefaultEntryHolder.defaultEntry);
                                    mutable_bitField0_ |= 0x00000004;
                                }
                                com.google.protobuf.MapEntry<String, String> exValues__ =
                                        input.readMessage(
                                                ExValuesDefaultEntryHolder.defaultEntry
                                                        .getParserForType(),
                                                extensionRegistry);
                                exValues_
                                        .getMutableMap()
                                        .put(exValues__.getKey(), exValues__.getValue());
                                break;
                            }
                    }
                }
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                throw e.setUnfinishedMessage(this);
            } catch (java.io.IOException e) {
                throw new com.google.protobuf.InvalidProtocolBufferException(e)
                        .setUnfinishedMessage(this);
            } finally {
                makeExtensionsImmutable();
            }
        }

        public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
            return MessageTestOuterClass
                    .internal_static_com_dtstack_chunjun_format_protobuf_test_MessageItem_descriptor;
        }

        @SuppressWarnings({"rawtypes"})
        protected com.google.protobuf.MapField internalGetMapField(int number) {
            switch (number) {
                case 3:
                    return internalGetExValues();
                default:
                    throw new RuntimeException("Invalid map field number: " + number);
            }
        }

        protected FieldAccessorTable internalGetFieldAccessorTable() {
            return MessageTestOuterClass
                    .internal_static_com_dtstack_chunjun_format_protobuf_test_MessageItem_fieldAccessorTable
                    .ensureFieldAccessorsInitialized(MessageItem.class, Builder.class);
        }

        private int bitField0_;
        public static final int TAGNAME_FIELD_NUMBER = 1;
        private volatile Object tagName_;
        /**
         *
         *
         * <pre>
         * 默认optional
         * </pre>
         *
         * <code>string TagName = 1;</code>
         */
        public String getTagName() {
            Object ref = tagName_;
            if (ref instanceof String) {
                return (String) ref;
            } else {
                com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
                String s = bs.toStringUtf8();
                tagName_ = s;
                return s;
            }
        }
        /**
         *
         *
         * <pre>
         * 默认optional
         * </pre>
         *
         * <code>string TagName = 1;</code>
         */
        public com.google.protobuf.ByteString getTagNameBytes() {
            Object ref = tagName_;
            if (ref instanceof String) {
                com.google.protobuf.ByteString b =
                        com.google.protobuf.ByteString.copyFromUtf8((String) ref);
                tagName_ = b;
                return b;
            } else {
                return (com.google.protobuf.ByteString) ref;
            }
        }

        public static final int TAGVALUE_FIELD_NUMBER = 2;
        private Variant tagValue_;
        /** <code>.com.dtstack.chunjun.format.protobuf.test.Variant TagValue = 2;</code> */
        public boolean hasTagValue() {
            return tagValue_ != null;
        }
        /** <code>.com.dtstack.chunjun.format.protobuf.test.Variant TagValue = 2;</code> */
        public Variant getTagValue() {
            return tagValue_ == null ? Variant.getDefaultInstance() : tagValue_;
        }
        /** <code>.com.dtstack.chunjun.format.protobuf.test.Variant TagValue = 2;</code> */
        public VariantOrBuilder getTagValueOrBuilder() {
            return getTagValue();
        }

        public static final int EXVALUES_FIELD_NUMBER = 3;

        private static final class ExValuesDefaultEntryHolder {
            static final com.google.protobuf.MapEntry<String, String> defaultEntry =
                    com.google.protobuf.MapEntry.<String, String>newDefaultInstance(
                            MessageTestOuterClass
                                    .internal_static_com_dtstack_chunjun_format_protobuf_test_MessageItem_ExValuesEntry_descriptor,
                            com.google.protobuf.WireFormat.FieldType.STRING,
                            "",
                            com.google.protobuf.WireFormat.FieldType.STRING,
                            "");
        }

        private com.google.protobuf.MapField<String, String> exValues_;

        private com.google.protobuf.MapField<String, String> internalGetExValues() {
            if (exValues_ == null) {
                return com.google.protobuf.MapField.emptyMapField(
                        ExValuesDefaultEntryHolder.defaultEntry);
            }
            return exValues_;
        }

        public int getExValuesCount() {
            return internalGetExValues().getMap().size();
        }
        /** <code>map&lt;string, string&gt; ExValues = 3;</code> */
        public boolean containsExValues(String key) {
            if (key == null) {
                throw new NullPointerException();
            }
            return internalGetExValues().getMap().containsKey(key);
        }
        /** Use {@link #getExValuesMap()} instead. */
        @Deprecated
        public java.util.Map<String, String> getExValues() {
            return getExValuesMap();
        }
        /** <code>map&lt;string, string&gt; ExValues = 3;</code> */
        public java.util.Map<String, String> getExValuesMap() {
            return internalGetExValues().getMap();
        }
        /** <code>map&lt;string, string&gt; ExValues = 3;</code> */
        public String getExValuesOrDefault(String key, String defaultValue) {
            if (key == null) {
                throw new NullPointerException();
            }
            java.util.Map<String, String> map = internalGetExValues().getMap();
            return map.containsKey(key) ? map.get(key) : defaultValue;
        }
        /** <code>map&lt;string, string&gt; ExValues = 3;</code> */
        public String getExValuesOrThrow(String key) {
            if (key == null) {
                throw new NullPointerException();
            }
            java.util.Map<String, String> map = internalGetExValues().getMap();
            if (!map.containsKey(key)) {
                throw new IllegalArgumentException();
            }
            return map.get(key);
        }

        private byte memoizedIsInitialized = -1;

        public final boolean isInitialized() {
            byte isInitialized = memoizedIsInitialized;
            if (isInitialized == 1) return true;
            if (isInitialized == 0) return false;

            memoizedIsInitialized = 1;
            return true;
        }

        public void writeTo(com.google.protobuf.CodedOutputStream output)
                throws java.io.IOException {
            if (!getTagNameBytes().isEmpty()) {
                com.google.protobuf.GeneratedMessageV3.writeString(output, 1, tagName_);
            }
            if (tagValue_ != null) {
                output.writeMessage(2, getTagValue());
            }
            com.google.protobuf.GeneratedMessageV3.serializeStringMapTo(
                    output, internalGetExValues(), ExValuesDefaultEntryHolder.defaultEntry, 3);
        }

        public int getSerializedSize() {
            int size = memoizedSize;
            if (size != -1) return size;

            size = 0;
            if (!getTagNameBytes().isEmpty()) {
                size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, tagName_);
            }
            if (tagValue_ != null) {
                size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getTagValue());
            }
            for (java.util.Map.Entry<String, String> entry :
                    internalGetExValues().getMap().entrySet()) {
                com.google.protobuf.MapEntry<String, String> exValues__ =
                        ExValuesDefaultEntryHolder.defaultEntry
                                .newBuilderForType()
                                .setKey(entry.getKey())
                                .setValue(entry.getValue())
                                .build();
                size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, exValues__);
            }
            memoizedSize = size;
            return size;
        }

        private static final long serialVersionUID = 0L;

        @Override
        public boolean equals(final Object obj) {
            if (obj == this) {
                return true;
            }
            if (!(obj instanceof MessageItem)) {
                return super.equals(obj);
            }
            MessageItem other = (MessageItem) obj;

            boolean result = true;
            result = result && getTagName().equals(other.getTagName());
            result = result && (hasTagValue() == other.hasTagValue());
            if (hasTagValue()) {
                result = result && getTagValue().equals(other.getTagValue());
            }
            result = result && internalGetExValues().equals(other.internalGetExValues());
            return result;
        }

        @Override
        public int hashCode() {
            if (memoizedHashCode != 0) {
                return memoizedHashCode;
            }
            int hash = 41;
            hash = (19 * hash) + getDescriptor().hashCode();
            hash = (37 * hash) + TAGNAME_FIELD_NUMBER;
            hash = (53 * hash) + getTagName().hashCode();
            if (hasTagValue()) {
                hash = (37 * hash) + TAGVALUE_FIELD_NUMBER;
                hash = (53 * hash) + getTagValue().hashCode();
            }
            if (!internalGetExValues().getMap().isEmpty()) {
                hash = (37 * hash) + EXVALUES_FIELD_NUMBER;
                hash = (53 * hash) + internalGetExValues().hashCode();
            }
            hash = (29 * hash) + unknownFields.hashCode();
            memoizedHashCode = hash;
            return hash;
        }

        public static MessageItem parseFrom(java.nio.ByteBuffer data)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static MessageItem parseFrom(
                java.nio.ByteBuffer data,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static MessageItem parseFrom(com.google.protobuf.ByteString data)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static MessageItem parseFrom(
                com.google.protobuf.ByteString data,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static MessageItem parseFrom(byte[] data)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static MessageItem parseFrom(
                byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static MessageItem parseFrom(java.io.InputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
        }

        public static MessageItem parseFrom(
                java.io.InputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
                    PARSER, input, extensionRegistry);
        }

        public static MessageItem parseDelimitedFrom(java.io.InputStream input)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
                    PARSER, input);
        }

        public static MessageItem parseDelimitedFrom(
                java.io.InputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
                    PARSER, input, extensionRegistry);
        }

        public static MessageItem parseFrom(com.google.protobuf.CodedInputStream input)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
        }

        public static MessageItem parseFrom(
                com.google.protobuf.CodedInputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
                    PARSER, input, extensionRegistry);
        }

        public Builder newBuilderForType() {
            return newBuilder();
        }

        public static Builder newBuilder() {
            return DEFAULT_INSTANCE.toBuilder();
        }

        public static Builder newBuilder(MessageItem prototype) {
            return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
        }

        public Builder toBuilder() {
            return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
        }

        @Override
        protected Builder newBuilderForType(BuilderParent parent) {
            Builder builder = new Builder(parent);
            return builder;
        }
        /** Protobuf type {@code com.dtstack.chunjun.format.protobuf.test.MessageItem} */
        public static final class Builder
                extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
                implements
                // @@protoc_insertion_point(builder_implements:com.dtstack.chunjun.format.protobuf.test.MessageItem)
                MessageItemOrBuilder {
            public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
                return MessageTestOuterClass
                        .internal_static_com_dtstack_chunjun_format_protobuf_test_MessageItem_descriptor;
            }

            @SuppressWarnings({"rawtypes"})
            protected com.google.protobuf.MapField internalGetMapField(int number) {
                switch (number) {
                    case 3:
                        return internalGetExValues();
                    default:
                        throw new RuntimeException("Invalid map field number: " + number);
                }
            }

            @SuppressWarnings({"rawtypes"})
            protected com.google.protobuf.MapField internalGetMutableMapField(int number) {
                switch (number) {
                    case 3:
                        return internalGetMutableExValues();
                    default:
                        throw new RuntimeException("Invalid map field number: " + number);
                }
            }

            protected FieldAccessorTable internalGetFieldAccessorTable() {
                return MessageTestOuterClass
                        .internal_static_com_dtstack_chunjun_format_protobuf_test_MessageItem_fieldAccessorTable
                        .ensureFieldAccessorsInitialized(MessageItem.class, Builder.class);
            }

            // Construct using
            // com.dtstack.chunjun.format.protobuf.test.MessageTestOuterClass.MessageItem.newBuilder()
            private Builder() {
                maybeForceBuilderInitialization();
            }

            private Builder(BuilderParent parent) {
                super(parent);
                maybeForceBuilderInitialization();
            }

            private void maybeForceBuilderInitialization() {
                if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {}
            }

            public Builder clear() {
                super.clear();
                tagName_ = "";

                if (tagValueBuilder_ == null) {
                    tagValue_ = null;
                } else {
                    tagValue_ = null;
                    tagValueBuilder_ = null;
                }
                internalGetMutableExValues().clear();
                return this;
            }

            public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
                return MessageTestOuterClass
                        .internal_static_com_dtstack_chunjun_format_protobuf_test_MessageItem_descriptor;
            }

            public MessageItem getDefaultInstanceForType() {
                return MessageItem.getDefaultInstance();
            }

            public MessageItem build() {
                MessageItem result = buildPartial();
                if (!result.isInitialized()) {
                    throw newUninitializedMessageException(result);
                }
                return result;
            }

            public MessageItem buildPartial() {
                MessageItem result = new MessageItem(this);
                int from_bitField0_ = bitField0_;
                int to_bitField0_ = 0;
                result.tagName_ = tagName_;
                if (tagValueBuilder_ == null) {
                    result.tagValue_ = tagValue_;
                } else {
                    result.tagValue_ = tagValueBuilder_.build();
                }
                result.exValues_ = internalGetExValues();
                result.exValues_.makeImmutable();
                result.bitField0_ = to_bitField0_;
                onBuilt();
                return result;
            }

            public Builder clone() {
                return (Builder) super.clone();
            }

            public Builder setField(
                    com.google.protobuf.Descriptors.FieldDescriptor field, Object value) {
                return (Builder) super.setField(field, value);
            }

            public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
                return (Builder) super.clearField(field);
            }

            public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
                return (Builder) super.clearOneof(oneof);
            }

            public Builder setRepeatedField(
                    com.google.protobuf.Descriptors.FieldDescriptor field,
                    int index,
                    Object value) {
                return (Builder) super.setRepeatedField(field, index, value);
            }

            public Builder addRepeatedField(
                    com.google.protobuf.Descriptors.FieldDescriptor field, Object value) {
                return (Builder) super.addRepeatedField(field, value);
            }

            public Builder mergeFrom(com.google.protobuf.Message other) {
                if (other instanceof MessageItem) {
                    return mergeFrom((MessageItem) other);
                } else {
                    super.mergeFrom(other);
                    return this;
                }
            }

            public Builder mergeFrom(MessageItem other) {
                if (other == MessageItem.getDefaultInstance()) return this;
                if (!other.getTagName().isEmpty()) {
                    tagName_ = other.tagName_;
                    onChanged();
                }
                if (other.hasTagValue()) {
                    mergeTagValue(other.getTagValue());
                }
                internalGetMutableExValues().mergeFrom(other.internalGetExValues());
                onChanged();
                return this;
            }

            public final boolean isInitialized() {
                return true;
            }

            public Builder mergeFrom(
                    com.google.protobuf.CodedInputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws java.io.IOException {
                MessageItem parsedMessage = null;
                try {
                    parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    parsedMessage = (MessageItem) e.getUnfinishedMessage();
                    throw e.unwrapIOException();
                } finally {
                    if (parsedMessage != null) {
                        mergeFrom(parsedMessage);
                    }
                }
                return this;
            }

            private int bitField0_;

            private Object tagName_ = "";
            /**
             *
             *
             * <pre>
             * 默认optional
             * </pre>
             *
             * <code>string TagName = 1;</code>
             */
            public String getTagName() {
                Object ref = tagName_;
                if (!(ref instanceof String)) {
                    com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
                    String s = bs.toStringUtf8();
                    tagName_ = s;
                    return s;
                } else {
                    return (String) ref;
                }
            }
            /**
             *
             *
             * <pre>
             * 默认optional
             * </pre>
             *
             * <code>string TagName = 1;</code>
             */
            public com.google.protobuf.ByteString getTagNameBytes() {
                Object ref = tagName_;
                if (ref instanceof String) {
                    com.google.protobuf.ByteString b =
                            com.google.protobuf.ByteString.copyFromUtf8((String) ref);
                    tagName_ = b;
                    return b;
                } else {
                    return (com.google.protobuf.ByteString) ref;
                }
            }
            /**
             *
             *
             * <pre>
             * 默认optional
             * </pre>
             *
             * <code>string TagName = 1;</code>
             */
            public Builder setTagName(String value) {
                if (value == null) {
                    throw new NullPointerException();
                }

                tagName_ = value;
                onChanged();
                return this;
            }
            /**
             *
             *
             * <pre>
             * 默认optional
             * </pre>
             *
             * <code>string TagName = 1;</code>
             */
            public Builder clearTagName() {

                tagName_ = getDefaultInstance().getTagName();
                onChanged();
                return this;
            }
            /**
             *
             *
             * <pre>
             * 默认optional
             * </pre>
             *
             * <code>string TagName = 1;</code>
             */
            public Builder setTagNameBytes(com.google.protobuf.ByteString value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                checkByteStringIsUtf8(value);

                tagName_ = value;
                onChanged();
                return this;
            }

            private Variant tagValue_ = null;
            private com.google.protobuf.SingleFieldBuilderV3<
                            Variant, Variant.Builder, VariantOrBuilder>
                    tagValueBuilder_;
            /** <code>.com.dtstack.chunjun.format.protobuf.test.Variant TagValue = 2;</code> */
            public boolean hasTagValue() {
                return tagValueBuilder_ != null || tagValue_ != null;
            }
            /** <code>.com.dtstack.chunjun.format.protobuf.test.Variant TagValue = 2;</code> */
            public Variant getTagValue() {
                if (tagValueBuilder_ == null) {
                    return tagValue_ == null ? Variant.getDefaultInstance() : tagValue_;
                } else {
                    return tagValueBuilder_.getMessage();
                }
            }
            /** <code>.com.dtstack.chunjun.format.protobuf.test.Variant TagValue = 2;</code> */
            public Builder setTagValue(Variant value) {
                if (tagValueBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    tagValue_ = value;
                    onChanged();
                } else {
                    tagValueBuilder_.setMessage(value);
                }

                return this;
            }
            /** <code>.com.dtstack.chunjun.format.protobuf.test.Variant TagValue = 2;</code> */
            public Builder setTagValue(Variant.Builder builderForValue) {
                if (tagValueBuilder_ == null) {
                    tagValue_ = builderForValue.build();
                    onChanged();
                } else {
                    tagValueBuilder_.setMessage(builderForValue.build());
                }

                return this;
            }
            /** <code>.com.dtstack.chunjun.format.protobuf.test.Variant TagValue = 2;</code> */
            public Builder mergeTagValue(Variant value) {
                if (tagValueBuilder_ == null) {
                    if (tagValue_ != null) {
                        tagValue_ = Variant.newBuilder(tagValue_).mergeFrom(value).buildPartial();
                    } else {
                        tagValue_ = value;
                    }
                    onChanged();
                } else {
                    tagValueBuilder_.mergeFrom(value);
                }

                return this;
            }
            /** <code>.com.dtstack.chunjun.format.protobuf.test.Variant TagValue = 2;</code> */
            public Builder clearTagValue() {
                if (tagValueBuilder_ == null) {
                    tagValue_ = null;
                    onChanged();
                } else {
                    tagValue_ = null;
                    tagValueBuilder_ = null;
                }

                return this;
            }
            /** <code>.com.dtstack.chunjun.format.protobuf.test.Variant TagValue = 2;</code> */
            public Variant.Builder getTagValueBuilder() {

                onChanged();
                return getTagValueFieldBuilder().getBuilder();
            }
            /** <code>.com.dtstack.chunjun.format.protobuf.test.Variant TagValue = 2;</code> */
            public VariantOrBuilder getTagValueOrBuilder() {
                if (tagValueBuilder_ != null) {
                    return tagValueBuilder_.getMessageOrBuilder();
                } else {
                    return tagValue_ == null ? Variant.getDefaultInstance() : tagValue_;
                }
            }
            /** <code>.com.dtstack.chunjun.format.protobuf.test.Variant TagValue = 2;</code> */
            private com.google.protobuf.SingleFieldBuilderV3<
                            Variant, Variant.Builder, VariantOrBuilder>
                    getTagValueFieldBuilder() {
                if (tagValueBuilder_ == null) {
                    tagValueBuilder_ =
                            new com.google.protobuf.SingleFieldBuilderV3<
                                    Variant, Variant.Builder, VariantOrBuilder>(
                                    getTagValue(), getParentForChildren(), isClean());
                    tagValue_ = null;
                }
                return tagValueBuilder_;
            }

            private com.google.protobuf.MapField<String, String> exValues_;

            private com.google.protobuf.MapField<String, String> internalGetExValues() {
                if (exValues_ == null) {
                    return com.google.protobuf.MapField.emptyMapField(
                            ExValuesDefaultEntryHolder.defaultEntry);
                }
                return exValues_;
            }

            private com.google.protobuf.MapField<String, String> internalGetMutableExValues() {
                onChanged();
                ;
                if (exValues_ == null) {
                    exValues_ =
                            com.google.protobuf.MapField.newMapField(
                                    ExValuesDefaultEntryHolder.defaultEntry);
                }
                if (!exValues_.isMutable()) {
                    exValues_ = exValues_.copy();
                }
                return exValues_;
            }

            public int getExValuesCount() {
                return internalGetExValues().getMap().size();
            }
            /** <code>map&lt;string, string&gt; ExValues = 3;</code> */
            public boolean containsExValues(String key) {
                if (key == null) {
                    throw new NullPointerException();
                }
                return internalGetExValues().getMap().containsKey(key);
            }
            /** Use {@link #getExValuesMap()} instead. */
            @Deprecated
            public java.util.Map<String, String> getExValues() {
                return getExValuesMap();
            }
            /** <code>map&lt;string, string&gt; ExValues = 3;</code> */
            public java.util.Map<String, String> getExValuesMap() {
                return internalGetExValues().getMap();
            }
            /** <code>map&lt;string, string&gt; ExValues = 3;</code> */
            public String getExValuesOrDefault(String key, String defaultValue) {
                if (key == null) {
                    throw new NullPointerException();
                }
                java.util.Map<String, String> map = internalGetExValues().getMap();
                return map.containsKey(key) ? map.get(key) : defaultValue;
            }
            /** <code>map&lt;string, string&gt; ExValues = 3;</code> */
            public String getExValuesOrThrow(String key) {
                if (key == null) {
                    throw new NullPointerException();
                }
                java.util.Map<String, String> map = internalGetExValues().getMap();
                if (!map.containsKey(key)) {
                    throw new IllegalArgumentException();
                }
                return map.get(key);
            }

            public Builder clearExValues() {
                internalGetMutableExValues().getMutableMap().clear();
                return this;
            }
            /** <code>map&lt;string, string&gt; ExValues = 3;</code> */
            public Builder removeExValues(String key) {
                if (key == null) {
                    throw new NullPointerException();
                }
                internalGetMutableExValues().getMutableMap().remove(key);
                return this;
            }
            /** Use alternate mutation accessors instead. */
            @Deprecated
            public java.util.Map<String, String> getMutableExValues() {
                return internalGetMutableExValues().getMutableMap();
            }
            /** <code>map&lt;string, string&gt; ExValues = 3;</code> */
            public Builder putExValues(String key, String value) {
                if (key == null) {
                    throw new NullPointerException();
                }
                if (value == null) {
                    throw new NullPointerException();
                }
                internalGetMutableExValues().getMutableMap().put(key, value);
                return this;
            }
            /** <code>map&lt;string, string&gt; ExValues = 3;</code> */
            public Builder putAllExValues(java.util.Map<String, String> values) {
                internalGetMutableExValues().getMutableMap().putAll(values);
                return this;
            }

            public final Builder setUnknownFields(
                    final com.google.protobuf.UnknownFieldSet unknownFields) {
                return this;
            }

            public final Builder mergeUnknownFields(
                    final com.google.protobuf.UnknownFieldSet unknownFields) {
                return this;
            }

            // @@protoc_insertion_point(builder_scope:com.dtstack.chunjun.format.protobuf.test.MessageItem)
        }

        // @@protoc_insertion_point(class_scope:com.dtstack.chunjun.format.protobuf.test.MessageItem)
        private static final MessageItem DEFAULT_INSTANCE;

        static {
            DEFAULT_INSTANCE = new MessageItem();
        }

        public static MessageItem getDefaultInstance() {
            return DEFAULT_INSTANCE;
        }

        private static final com.google.protobuf.Parser<MessageItem> PARSER =
                new com.google.protobuf.AbstractParser<MessageItem>() {
                    public MessageItem parsePartialFrom(
                            com.google.protobuf.CodedInputStream input,
                            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                            throws com.google.protobuf.InvalidProtocolBufferException {
                        return new MessageItem(input, extensionRegistry);
                    }
                };

        public static com.google.protobuf.Parser<MessageItem> parser() {
            return PARSER;
        }

        @Override
        public com.google.protobuf.Parser<MessageItem> getParserForType() {
            return PARSER;
        }

        public MessageItem getDefaultInstanceForType() {
            return DEFAULT_INSTANCE;
        }
    }

    public interface MessageTestOrBuilder
            extends
            // @@protoc_insertion_point(interface_extends:com.dtstack.chunjun.format.protobuf.test.MessageTest)
            com.google.protobuf.MessageOrBuilder {

        /** <code>map&lt;string, string&gt; GroupInfo = 1;</code> */
        int getGroupInfoCount();
        /** <code>map&lt;string, string&gt; GroupInfo = 1;</code> */
        boolean containsGroupInfo(String key);
        /** Use {@link #getGroupInfoMap()} instead. */
        @Deprecated
        java.util.Map<String, String> getGroupInfo();
        /** <code>map&lt;string, string&gt; GroupInfo = 1;</code> */
        java.util.Map<String, String> getGroupInfoMap();
        /** <code>map&lt;string, string&gt; GroupInfo = 1;</code> */
        String getGroupInfoOrDefault(String key, String defaultValue);
        /** <code>map&lt;string, string&gt; GroupInfo = 1;</code> */
        String getGroupInfoOrThrow(String key);

        /**
         * <code>repeated .com.dtstack.chunjun.format.protobuf.test.MessageItem Messages = 2;</code>
         */
        java.util.List<MessageItem> getMessagesList();
        /**
         * <code>repeated .com.dtstack.chunjun.format.protobuf.test.MessageItem Messages = 2;</code>
         */
        MessageItem getMessages(int index);
        /**
         * <code>repeated .com.dtstack.chunjun.format.protobuf.test.MessageItem Messages = 2;</code>
         */
        int getMessagesCount();
        /**
         * <code>repeated .com.dtstack.chunjun.format.protobuf.test.MessageItem Messages = 2;</code>
         */
        java.util.List<? extends MessageItemOrBuilder> getMessagesOrBuilderList();
        /**
         * <code>repeated .com.dtstack.chunjun.format.protobuf.test.MessageItem Messages = 2;</code>
         */
        MessageItemOrBuilder getMessagesOrBuilder(int index);
    }
    /** Protobuf type {@code com.dtstack.chunjun.format.protobuf.test.MessageTest} */
    public static final class MessageTest extends com.google.protobuf.GeneratedMessageV3
            implements
            // @@protoc_insertion_point(message_implements:com.dtstack.chunjun.format.protobuf.test.MessageTest)
            MessageTestOrBuilder {
        // Use MessageTest.newBuilder() to construct.
        private MessageTest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
            super(builder);
        }

        private MessageTest() {
            messages_ = java.util.Collections.emptyList();
        }

        @Override
        public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
            return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
        }

        private MessageTest(
                com.google.protobuf.CodedInputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
            this();
            int mutable_bitField0_ = 0;
            try {
                boolean done = false;
                while (!done) {
                    int tag = input.readTag();
                    switch (tag) {
                        case 0:
                            done = true;
                            break;
                        default:
                            {
                                if (!input.skipField(tag)) {
                                    done = true;
                                }
                                break;
                            }
                        case 10:
                            {
                                if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                                    groupInfo_ =
                                            com.google.protobuf.MapField.newMapField(
                                                    GroupInfoDefaultEntryHolder.defaultEntry);
                                    mutable_bitField0_ |= 0x00000001;
                                }
                                com.google.protobuf.MapEntry<String, String> groupInfo__ =
                                        input.readMessage(
                                                GroupInfoDefaultEntryHolder.defaultEntry
                                                        .getParserForType(),
                                                extensionRegistry);
                                groupInfo_
                                        .getMutableMap()
                                        .put(groupInfo__.getKey(), groupInfo__.getValue());
                                break;
                            }
                        case 18:
                            {
                                if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                                    messages_ = new java.util.ArrayList<MessageItem>();
                                    mutable_bitField0_ |= 0x00000002;
                                }
                                messages_.add(
                                        input.readMessage(MessageItem.parser(), extensionRegistry));
                                break;
                            }
                    }
                }
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                throw e.setUnfinishedMessage(this);
            } catch (java.io.IOException e) {
                throw new com.google.protobuf.InvalidProtocolBufferException(e)
                        .setUnfinishedMessage(this);
            } finally {
                if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                    messages_ = java.util.Collections.unmodifiableList(messages_);
                }
                makeExtensionsImmutable();
            }
        }

        public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
            return MessageTestOuterClass
                    .internal_static_com_dtstack_chunjun_format_protobuf_test_MessageTest_descriptor;
        }

        @SuppressWarnings({"rawtypes"})
        protected com.google.protobuf.MapField internalGetMapField(int number) {
            switch (number) {
                case 1:
                    return internalGetGroupInfo();
                default:
                    throw new RuntimeException("Invalid map field number: " + number);
            }
        }

        protected FieldAccessorTable internalGetFieldAccessorTable() {
            return MessageTestOuterClass
                    .internal_static_com_dtstack_chunjun_format_protobuf_test_MessageTest_fieldAccessorTable
                    .ensureFieldAccessorsInitialized(MessageTest.class, Builder.class);
        }

        public static final int GROUPINFO_FIELD_NUMBER = 1;

        private static final class GroupInfoDefaultEntryHolder {
            static final com.google.protobuf.MapEntry<String, String> defaultEntry =
                    com.google.protobuf.MapEntry.<String, String>newDefaultInstance(
                            MessageTestOuterClass
                                    .internal_static_com_dtstack_chunjun_format_protobuf_test_MessageTest_GroupInfoEntry_descriptor,
                            com.google.protobuf.WireFormat.FieldType.STRING,
                            "",
                            com.google.protobuf.WireFormat.FieldType.STRING,
                            "");
        }

        private com.google.protobuf.MapField<String, String> groupInfo_;

        private com.google.protobuf.MapField<String, String> internalGetGroupInfo() {
            if (groupInfo_ == null) {
                return com.google.protobuf.MapField.emptyMapField(
                        GroupInfoDefaultEntryHolder.defaultEntry);
            }
            return groupInfo_;
        }

        public int getGroupInfoCount() {
            return internalGetGroupInfo().getMap().size();
        }
        /** <code>map&lt;string, string&gt; GroupInfo = 1;</code> */
        public boolean containsGroupInfo(String key) {
            if (key == null) {
                throw new NullPointerException();
            }
            return internalGetGroupInfo().getMap().containsKey(key);
        }
        /** Use {@link #getGroupInfoMap()} instead. */
        @Deprecated
        public java.util.Map<String, String> getGroupInfo() {
            return getGroupInfoMap();
        }
        /** <code>map&lt;string, string&gt; GroupInfo = 1;</code> */
        public java.util.Map<String, String> getGroupInfoMap() {
            return internalGetGroupInfo().getMap();
        }
        /** <code>map&lt;string, string&gt; GroupInfo = 1;</code> */
        public String getGroupInfoOrDefault(String key, String defaultValue) {
            if (key == null) {
                throw new NullPointerException();
            }
            java.util.Map<String, String> map = internalGetGroupInfo().getMap();
            return map.containsKey(key) ? map.get(key) : defaultValue;
        }
        /** <code>map&lt;string, string&gt; GroupInfo = 1;</code> */
        public String getGroupInfoOrThrow(String key) {
            if (key == null) {
                throw new NullPointerException();
            }
            java.util.Map<String, String> map = internalGetGroupInfo().getMap();
            if (!map.containsKey(key)) {
                throw new IllegalArgumentException();
            }
            return map.get(key);
        }

        public static final int MESSAGES_FIELD_NUMBER = 2;
        private java.util.List<MessageItem> messages_;
        /**
         * <code>repeated .com.dtstack.chunjun.format.protobuf.test.MessageItem Messages = 2;</code>
         */
        public java.util.List<MessageItem> getMessagesList() {
            return messages_;
        }
        /**
         * <code>repeated .com.dtstack.chunjun.format.protobuf.test.MessageItem Messages = 2;</code>
         */
        public java.util.List<? extends MessageItemOrBuilder> getMessagesOrBuilderList() {
            return messages_;
        }
        /**
         * <code>repeated .com.dtstack.chunjun.format.protobuf.test.MessageItem Messages = 2;</code>
         */
        public int getMessagesCount() {
            return messages_.size();
        }
        /**
         * <code>repeated .com.dtstack.chunjun.format.protobuf.test.MessageItem Messages = 2;</code>
         */
        public MessageItem getMessages(int index) {
            return messages_.get(index);
        }
        /**
         * <code>repeated .com.dtstack.chunjun.format.protobuf.test.MessageItem Messages = 2;</code>
         */
        public MessageItemOrBuilder getMessagesOrBuilder(int index) {
            return messages_.get(index);
        }

        private byte memoizedIsInitialized = -1;

        public final boolean isInitialized() {
            byte isInitialized = memoizedIsInitialized;
            if (isInitialized == 1) return true;
            if (isInitialized == 0) return false;

            memoizedIsInitialized = 1;
            return true;
        }

        public void writeTo(com.google.protobuf.CodedOutputStream output)
                throws java.io.IOException {
            com.google.protobuf.GeneratedMessageV3.serializeStringMapTo(
                    output, internalGetGroupInfo(), GroupInfoDefaultEntryHolder.defaultEntry, 1);
            for (int i = 0; i < messages_.size(); i++) {
                output.writeMessage(2, messages_.get(i));
            }
        }

        public int getSerializedSize() {
            int size = memoizedSize;
            if (size != -1) return size;

            size = 0;
            for (java.util.Map.Entry<String, String> entry :
                    internalGetGroupInfo().getMap().entrySet()) {
                com.google.protobuf.MapEntry<String, String> groupInfo__ =
                        GroupInfoDefaultEntryHolder.defaultEntry
                                .newBuilderForType()
                                .setKey(entry.getKey())
                                .setValue(entry.getValue())
                                .build();
                size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, groupInfo__);
            }
            for (int i = 0; i < messages_.size(); i++) {
                size +=
                        com.google.protobuf.CodedOutputStream.computeMessageSize(
                                2, messages_.get(i));
            }
            memoizedSize = size;
            return size;
        }

        private static final long serialVersionUID = 0L;

        @Override
        public boolean equals(final Object obj) {
            if (obj == this) {
                return true;
            }
            if (!(obj instanceof MessageTest)) {
                return super.equals(obj);
            }
            MessageTest other = (MessageTest) obj;

            boolean result = true;
            result = result && internalGetGroupInfo().equals(other.internalGetGroupInfo());
            result = result && getMessagesList().equals(other.getMessagesList());
            return result;
        }

        @Override
        public int hashCode() {
            if (memoizedHashCode != 0) {
                return memoizedHashCode;
            }
            int hash = 41;
            hash = (19 * hash) + getDescriptor().hashCode();
            if (!internalGetGroupInfo().getMap().isEmpty()) {
                hash = (37 * hash) + GROUPINFO_FIELD_NUMBER;
                hash = (53 * hash) + internalGetGroupInfo().hashCode();
            }
            if (getMessagesCount() > 0) {
                hash = (37 * hash) + MESSAGES_FIELD_NUMBER;
                hash = (53 * hash) + getMessagesList().hashCode();
            }
            hash = (29 * hash) + unknownFields.hashCode();
            memoizedHashCode = hash;
            return hash;
        }

        public static MessageTest parseFrom(java.nio.ByteBuffer data)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static MessageTest parseFrom(
                java.nio.ByteBuffer data,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static MessageTest parseFrom(com.google.protobuf.ByteString data)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static MessageTest parseFrom(
                com.google.protobuf.ByteString data,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static MessageTest parseFrom(byte[] data)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static MessageTest parseFrom(
                byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static MessageTest parseFrom(java.io.InputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
        }

        public static MessageTest parseFrom(
                java.io.InputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
                    PARSER, input, extensionRegistry);
        }

        public static MessageTest parseDelimitedFrom(java.io.InputStream input)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
                    PARSER, input);
        }

        public static MessageTest parseDelimitedFrom(
                java.io.InputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
                    PARSER, input, extensionRegistry);
        }

        public static MessageTest parseFrom(com.google.protobuf.CodedInputStream input)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
        }

        public static MessageTest parseFrom(
                com.google.protobuf.CodedInputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
                    PARSER, input, extensionRegistry);
        }

        public Builder newBuilderForType() {
            return newBuilder();
        }

        public static Builder newBuilder() {
            return DEFAULT_INSTANCE.toBuilder();
        }

        public static Builder newBuilder(MessageTest prototype) {
            return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
        }

        public Builder toBuilder() {
            return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
        }

        @Override
        protected Builder newBuilderForType(BuilderParent parent) {
            Builder builder = new Builder(parent);
            return builder;
        }
        /** Protobuf type {@code com.dtstack.chunjun.format.protobuf.test.MessageTest} */
        public static final class Builder
                extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
                implements
                // @@protoc_insertion_point(builder_implements:com.dtstack.chunjun.format.protobuf.test.MessageTest)
                MessageTestOrBuilder {
            public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
                return MessageTestOuterClass
                        .internal_static_com_dtstack_chunjun_format_protobuf_test_MessageTest_descriptor;
            }

            @SuppressWarnings({"rawtypes"})
            protected com.google.protobuf.MapField internalGetMapField(int number) {
                switch (number) {
                    case 1:
                        return internalGetGroupInfo();
                    default:
                        throw new RuntimeException("Invalid map field number: " + number);
                }
            }

            @SuppressWarnings({"rawtypes"})
            protected com.google.protobuf.MapField internalGetMutableMapField(int number) {
                switch (number) {
                    case 1:
                        return internalGetMutableGroupInfo();
                    default:
                        throw new RuntimeException("Invalid map field number: " + number);
                }
            }

            protected FieldAccessorTable internalGetFieldAccessorTable() {
                return MessageTestOuterClass
                        .internal_static_com_dtstack_chunjun_format_protobuf_test_MessageTest_fieldAccessorTable
                        .ensureFieldAccessorsInitialized(MessageTest.class, Builder.class);
            }

            // Construct using
            // com.dtstack.chunjun.format.protobuf.test.MessageTestOuterClass.MessageTest.newBuilder()
            private Builder() {
                maybeForceBuilderInitialization();
            }

            private Builder(BuilderParent parent) {
                super(parent);
                maybeForceBuilderInitialization();
            }

            private void maybeForceBuilderInitialization() {
                if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
                    getMessagesFieldBuilder();
                }
            }

            public Builder clear() {
                super.clear();
                internalGetMutableGroupInfo().clear();
                if (messagesBuilder_ == null) {
                    messages_ = java.util.Collections.emptyList();
                    bitField0_ = (bitField0_ & ~0x00000002);
                } else {
                    messagesBuilder_.clear();
                }
                return this;
            }

            public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
                return MessageTestOuterClass
                        .internal_static_com_dtstack_chunjun_format_protobuf_test_MessageTest_descriptor;
            }

            public MessageTest getDefaultInstanceForType() {
                return MessageTest.getDefaultInstance();
            }

            public MessageTest build() {
                MessageTest result = buildPartial();
                if (!result.isInitialized()) {
                    throw newUninitializedMessageException(result);
                }
                return result;
            }

            public MessageTest buildPartial() {
                MessageTest result = new MessageTest(this);
                int from_bitField0_ = bitField0_;
                result.groupInfo_ = internalGetGroupInfo();
                result.groupInfo_.makeImmutable();
                if (messagesBuilder_ == null) {
                    if (((bitField0_ & 0x00000002) == 0x00000002)) {
                        messages_ = java.util.Collections.unmodifiableList(messages_);
                        bitField0_ = (bitField0_ & ~0x00000002);
                    }
                    result.messages_ = messages_;
                } else {
                    result.messages_ = messagesBuilder_.build();
                }
                onBuilt();
                return result;
            }

            public Builder clone() {
                return (Builder) super.clone();
            }

            public Builder setField(
                    com.google.protobuf.Descriptors.FieldDescriptor field, Object value) {
                return (Builder) super.setField(field, value);
            }

            public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
                return (Builder) super.clearField(field);
            }

            public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
                return (Builder) super.clearOneof(oneof);
            }

            public Builder setRepeatedField(
                    com.google.protobuf.Descriptors.FieldDescriptor field,
                    int index,
                    Object value) {
                return (Builder) super.setRepeatedField(field, index, value);
            }

            public Builder addRepeatedField(
                    com.google.protobuf.Descriptors.FieldDescriptor field, Object value) {
                return (Builder) super.addRepeatedField(field, value);
            }

            public Builder mergeFrom(com.google.protobuf.Message other) {
                if (other instanceof MessageTest) {
                    return mergeFrom((MessageTest) other);
                } else {
                    super.mergeFrom(other);
                    return this;
                }
            }

            public Builder mergeFrom(MessageTest other) {
                if (other == MessageTest.getDefaultInstance()) return this;
                internalGetMutableGroupInfo().mergeFrom(other.internalGetGroupInfo());
                if (messagesBuilder_ == null) {
                    if (!other.messages_.isEmpty()) {
                        if (messages_.isEmpty()) {
                            messages_ = other.messages_;
                            bitField0_ = (bitField0_ & ~0x00000002);
                        } else {
                            ensureMessagesIsMutable();
                            messages_.addAll(other.messages_);
                        }
                        onChanged();
                    }
                } else {
                    if (!other.messages_.isEmpty()) {
                        if (messagesBuilder_.isEmpty()) {
                            messagesBuilder_.dispose();
                            messagesBuilder_ = null;
                            messages_ = other.messages_;
                            bitField0_ = (bitField0_ & ~0x00000002);
                            messagesBuilder_ =
                                    com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                                            ? getMessagesFieldBuilder()
                                            : null;
                        } else {
                            messagesBuilder_.addAllMessages(other.messages_);
                        }
                    }
                }
                onChanged();
                return this;
            }

            public final boolean isInitialized() {
                return true;
            }

            public Builder mergeFrom(
                    com.google.protobuf.CodedInputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws java.io.IOException {
                MessageTest parsedMessage = null;
                try {
                    parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    parsedMessage = (MessageTest) e.getUnfinishedMessage();
                    throw e.unwrapIOException();
                } finally {
                    if (parsedMessage != null) {
                        mergeFrom(parsedMessage);
                    }
                }
                return this;
            }

            private int bitField0_;

            private com.google.protobuf.MapField<String, String> groupInfo_;

            private com.google.protobuf.MapField<String, String> internalGetGroupInfo() {
                if (groupInfo_ == null) {
                    return com.google.protobuf.MapField.emptyMapField(
                            GroupInfoDefaultEntryHolder.defaultEntry);
                }
                return groupInfo_;
            }

            private com.google.protobuf.MapField<String, String> internalGetMutableGroupInfo() {
                onChanged();
                ;
                if (groupInfo_ == null) {
                    groupInfo_ =
                            com.google.protobuf.MapField.newMapField(
                                    GroupInfoDefaultEntryHolder.defaultEntry);
                }
                if (!groupInfo_.isMutable()) {
                    groupInfo_ = groupInfo_.copy();
                }
                return groupInfo_;
            }

            public int getGroupInfoCount() {
                return internalGetGroupInfo().getMap().size();
            }
            /** <code>map&lt;string, string&gt; GroupInfo = 1;</code> */
            public boolean containsGroupInfo(String key) {
                if (key == null) {
                    throw new NullPointerException();
                }
                return internalGetGroupInfo().getMap().containsKey(key);
            }
            /** Use {@link #getGroupInfoMap()} instead. */
            @Deprecated
            public java.util.Map<String, String> getGroupInfo() {
                return getGroupInfoMap();
            }
            /** <code>map&lt;string, string&gt; GroupInfo = 1;</code> */
            public java.util.Map<String, String> getGroupInfoMap() {
                return internalGetGroupInfo().getMap();
            }
            /** <code>map&lt;string, string&gt; GroupInfo = 1;</code> */
            public String getGroupInfoOrDefault(String key, String defaultValue) {
                if (key == null) {
                    throw new NullPointerException();
                }
                java.util.Map<String, String> map = internalGetGroupInfo().getMap();
                return map.containsKey(key) ? map.get(key) : defaultValue;
            }
            /** <code>map&lt;string, string&gt; GroupInfo = 1;</code> */
            public String getGroupInfoOrThrow(String key) {
                if (key == null) {
                    throw new NullPointerException();
                }
                java.util.Map<String, String> map = internalGetGroupInfo().getMap();
                if (!map.containsKey(key)) {
                    throw new IllegalArgumentException();
                }
                return map.get(key);
            }

            public Builder clearGroupInfo() {
                internalGetMutableGroupInfo().getMutableMap().clear();
                return this;
            }
            /** <code>map&lt;string, string&gt; GroupInfo = 1;</code> */
            public Builder removeGroupInfo(String key) {
                if (key == null) {
                    throw new NullPointerException();
                }
                internalGetMutableGroupInfo().getMutableMap().remove(key);
                return this;
            }
            /** Use alternate mutation accessors instead. */
            @Deprecated
            public java.util.Map<String, String> getMutableGroupInfo() {
                return internalGetMutableGroupInfo().getMutableMap();
            }
            /** <code>map&lt;string, string&gt; GroupInfo = 1;</code> */
            public Builder putGroupInfo(String key, String value) {
                if (key == null) {
                    throw new NullPointerException();
                }
                if (value == null) {
                    throw new NullPointerException();
                }
                internalGetMutableGroupInfo().getMutableMap().put(key, value);
                return this;
            }
            /** <code>map&lt;string, string&gt; GroupInfo = 1;</code> */
            public Builder putAllGroupInfo(java.util.Map<String, String> values) {
                internalGetMutableGroupInfo().getMutableMap().putAll(values);
                return this;
            }

            private java.util.List<MessageItem> messages_ = java.util.Collections.emptyList();

            private void ensureMessagesIsMutable() {
                if (!((bitField0_ & 0x00000002) == 0x00000002)) {
                    messages_ = new java.util.ArrayList<MessageItem>(messages_);
                    bitField0_ |= 0x00000002;
                }
            }

            private com.google.protobuf.RepeatedFieldBuilderV3<
                            MessageItem, MessageItem.Builder, MessageItemOrBuilder>
                    messagesBuilder_;

            /**
             * <code>repeated .com.dtstack.chunjun.format.protobuf.test.MessageItem Messages = 2;
             * </code>
             */
            public java.util.List<MessageItem> getMessagesList() {
                if (messagesBuilder_ == null) {
                    return java.util.Collections.unmodifiableList(messages_);
                } else {
                    return messagesBuilder_.getMessageList();
                }
            }
            /**
             * <code>repeated .com.dtstack.chunjun.format.protobuf.test.MessageItem Messages = 2;
             * </code>
             */
            public int getMessagesCount() {
                if (messagesBuilder_ == null) {
                    return messages_.size();
                } else {
                    return messagesBuilder_.getCount();
                }
            }
            /**
             * <code>repeated .com.dtstack.chunjun.format.protobuf.test.MessageItem Messages = 2;
             * </code>
             */
            public MessageItem getMessages(int index) {
                if (messagesBuilder_ == null) {
                    return messages_.get(index);
                } else {
                    return messagesBuilder_.getMessage(index);
                }
            }
            /**
             * <code>repeated .com.dtstack.chunjun.format.protobuf.test.MessageItem Messages = 2;
             * </code>
             */
            public Builder setMessages(int index, MessageItem value) {
                if (messagesBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    ensureMessagesIsMutable();
                    messages_.set(index, value);
                    onChanged();
                } else {
                    messagesBuilder_.setMessage(index, value);
                }
                return this;
            }
            /**
             * <code>repeated .com.dtstack.chunjun.format.protobuf.test.MessageItem Messages = 2;
             * </code>
             */
            public Builder setMessages(int index, MessageItem.Builder builderForValue) {
                if (messagesBuilder_ == null) {
                    ensureMessagesIsMutable();
                    messages_.set(index, builderForValue.build());
                    onChanged();
                } else {
                    messagesBuilder_.setMessage(index, builderForValue.build());
                }
                return this;
            }
            /**
             * <code>repeated .com.dtstack.chunjun.format.protobuf.test.MessageItem Messages = 2;
             * </code>
             */
            public Builder addMessages(MessageItem value) {
                if (messagesBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    ensureMessagesIsMutable();
                    messages_.add(value);
                    onChanged();
                } else {
                    messagesBuilder_.addMessage(value);
                }
                return this;
            }
            /**
             * <code>repeated .com.dtstack.chunjun.format.protobuf.test.MessageItem Messages = 2;
             * </code>
             */
            public Builder addMessages(int index, MessageItem value) {
                if (messagesBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    ensureMessagesIsMutable();
                    messages_.add(index, value);
                    onChanged();
                } else {
                    messagesBuilder_.addMessage(index, value);
                }
                return this;
            }
            /**
             * <code>repeated .com.dtstack.chunjun.format.protobuf.test.MessageItem Messages = 2;
             * </code>
             */
            public Builder addMessages(MessageItem.Builder builderForValue) {
                if (messagesBuilder_ == null) {
                    ensureMessagesIsMutable();
                    messages_.add(builderForValue.build());
                    onChanged();
                } else {
                    messagesBuilder_.addMessage(builderForValue.build());
                }
                return this;
            }
            /**
             * <code>repeated .com.dtstack.chunjun.format.protobuf.test.MessageItem Messages = 2;
             * </code>
             */
            public Builder addMessages(int index, MessageItem.Builder builderForValue) {
                if (messagesBuilder_ == null) {
                    ensureMessagesIsMutable();
                    messages_.add(index, builderForValue.build());
                    onChanged();
                } else {
                    messagesBuilder_.addMessage(index, builderForValue.build());
                }
                return this;
            }
            /**
             * <code>repeated .com.dtstack.chunjun.format.protobuf.test.MessageItem Messages = 2;
             * </code>
             */
            public Builder addAllMessages(Iterable<? extends MessageItem> values) {
                if (messagesBuilder_ == null) {
                    ensureMessagesIsMutable();
                    com.google.protobuf.AbstractMessageLite.Builder.addAll(values, messages_);
                    onChanged();
                } else {
                    messagesBuilder_.addAllMessages(values);
                }
                return this;
            }
            /**
             * <code>repeated .com.dtstack.chunjun.format.protobuf.test.MessageItem Messages = 2;
             * </code>
             */
            public Builder clearMessages() {
                if (messagesBuilder_ == null) {
                    messages_ = java.util.Collections.emptyList();
                    bitField0_ = (bitField0_ & ~0x00000002);
                    onChanged();
                } else {
                    messagesBuilder_.clear();
                }
                return this;
            }
            /**
             * <code>repeated .com.dtstack.chunjun.format.protobuf.test.MessageItem Messages = 2;
             * </code>
             */
            public Builder removeMessages(int index) {
                if (messagesBuilder_ == null) {
                    ensureMessagesIsMutable();
                    messages_.remove(index);
                    onChanged();
                } else {
                    messagesBuilder_.remove(index);
                }
                return this;
            }
            /**
             * <code>repeated .com.dtstack.chunjun.format.protobuf.test.MessageItem Messages = 2;
             * </code>
             */
            public MessageItem.Builder getMessagesBuilder(int index) {
                return getMessagesFieldBuilder().getBuilder(index);
            }
            /**
             * <code>repeated .com.dtstack.chunjun.format.protobuf.test.MessageItem Messages = 2;
             * </code>
             */
            public MessageItemOrBuilder getMessagesOrBuilder(int index) {
                if (messagesBuilder_ == null) {
                    return messages_.get(index);
                } else {
                    return messagesBuilder_.getMessageOrBuilder(index);
                }
            }
            /**
             * <code>repeated .com.dtstack.chunjun.format.protobuf.test.MessageItem Messages = 2;
             * </code>
             */
            public java.util.List<? extends MessageItemOrBuilder> getMessagesOrBuilderList() {
                if (messagesBuilder_ != null) {
                    return messagesBuilder_.getMessageOrBuilderList();
                } else {
                    return java.util.Collections.unmodifiableList(messages_);
                }
            }
            /**
             * <code>repeated .com.dtstack.chunjun.format.protobuf.test.MessageItem Messages = 2;
             * </code>
             */
            public MessageItem.Builder addMessagesBuilder() {
                return getMessagesFieldBuilder().addBuilder(MessageItem.getDefaultInstance());
            }
            /**
             * <code>repeated .com.dtstack.chunjun.format.protobuf.test.MessageItem Messages = 2;
             * </code>
             */
            public MessageItem.Builder addMessagesBuilder(int index) {
                return getMessagesFieldBuilder()
                        .addBuilder(index, MessageItem.getDefaultInstance());
            }
            /**
             * <code>repeated .com.dtstack.chunjun.format.protobuf.test.MessageItem Messages = 2;
             * </code>
             */
            public java.util.List<MessageItem.Builder> getMessagesBuilderList() {
                return getMessagesFieldBuilder().getBuilderList();
            }

            private com.google.protobuf.RepeatedFieldBuilderV3<
                            MessageItem, MessageItem.Builder, MessageItemOrBuilder>
                    getMessagesFieldBuilder() {
                if (messagesBuilder_ == null) {
                    messagesBuilder_ =
                            new com.google.protobuf.RepeatedFieldBuilderV3<
                                    MessageItem, MessageItem.Builder, MessageItemOrBuilder>(
                                    messages_,
                                    ((bitField0_ & 0x00000002) == 0x00000002),
                                    getParentForChildren(),
                                    isClean());
                    messages_ = null;
                }
                return messagesBuilder_;
            }

            public final Builder setUnknownFields(
                    final com.google.protobuf.UnknownFieldSet unknownFields) {
                return this;
            }

            public final Builder mergeUnknownFields(
                    final com.google.protobuf.UnknownFieldSet unknownFields) {
                return this;
            }

            // @@protoc_insertion_point(builder_scope:com.dtstack.chunjun.format.protobuf.test.MessageTest)
        }

        // @@protoc_insertion_point(class_scope:com.dtstack.chunjun.format.protobuf.test.MessageTest)
        private static final MessageTest DEFAULT_INSTANCE;

        static {
            DEFAULT_INSTANCE = new MessageTest();
        }

        public static MessageTest getDefaultInstance() {
            return DEFAULT_INSTANCE;
        }

        private static final com.google.protobuf.Parser<MessageTest> PARSER =
                new com.google.protobuf.AbstractParser<MessageTest>() {
                    public MessageTest parsePartialFrom(
                            com.google.protobuf.CodedInputStream input,
                            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                            throws com.google.protobuf.InvalidProtocolBufferException {
                        return new MessageTest(input, extensionRegistry);
                    }
                };

        public static com.google.protobuf.Parser<MessageTest> parser() {
            return PARSER;
        }

        @Override
        public com.google.protobuf.Parser<MessageTest> getParserForType() {
            return PARSER;
        }

        public MessageTest getDefaultInstanceForType() {
            return DEFAULT_INSTANCE;
        }
    }

    private static final com.google.protobuf.Descriptors.Descriptor
            internal_static_com_dtstack_chunjun_format_protobuf_test_Variant_descriptor;
    private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internal_static_com_dtstack_chunjun_format_protobuf_test_Variant_fieldAccessorTable;
    private static final com.google.protobuf.Descriptors.Descriptor
            internal_static_com_dtstack_chunjun_format_protobuf_test_MessageItem_descriptor;
    private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internal_static_com_dtstack_chunjun_format_protobuf_test_MessageItem_fieldAccessorTable;
    private static final com.google.protobuf.Descriptors.Descriptor
            internal_static_com_dtstack_chunjun_format_protobuf_test_MessageItem_ExValuesEntry_descriptor;
    private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internal_static_com_dtstack_chunjun_format_protobuf_test_MessageItem_ExValuesEntry_fieldAccessorTable;
    private static final com.google.protobuf.Descriptors.Descriptor
            internal_static_com_dtstack_chunjun_format_protobuf_test_MessageTest_descriptor;
    private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internal_static_com_dtstack_chunjun_format_protobuf_test_MessageTest_fieldAccessorTable;
    private static final com.google.protobuf.Descriptors.Descriptor
            internal_static_com_dtstack_chunjun_format_protobuf_test_MessageTest_GroupInfoEntry_descriptor;
    private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internal_static_com_dtstack_chunjun_format_protobuf_test_MessageTest_GroupInfoEntry_fieldAccessorTable;

    public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
        return descriptor;
    }

    private static com.google.protobuf.Descriptors.FileDescriptor descriptor;

    static {
        String[] descriptorData = {
            "\n\021MessageTest.proto\022(com.dtstack.chunjun"
                    + ".format.protobuf.test\"]\n\007Variant\022\r\n\005bool"
                    + "x\030\001 \001(\010\022\024\n\nValueBool2\030\002 \001(\010H\000\022\024\n\nValueIn"
                    + "t32\030\003 \001(\005H\000\022\r\n\005booly\030\004 \001(\010B\010\n\006Value2\"\353\001\n"
                    + "\013MessageItem\022\017\n\007TagName\030\001 \001(\t\022C\n\010TagValu"
                    + "e\030\002 \001(\01321.com.dtstack.chunjun.format.pro"
                    + "tobuf.test.Variant\022U\n\010ExValues\030\003 \003(\0132C.c"
                    + "om.dtstack.chunjun.format.protobuf.test."
                    + "MessageItem.ExValuesEntry\032/\n\rExValuesEnt"
                    + "ry\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001\"\341\001\n\013M",
            "essageTest\022W\n\tGroupInfo\030\001 \003(\0132D.com.dtst"
                    + "ack.chunjun.format.protobuf.test.Message"
                    + "Test.GroupInfoEntry\022G\n\010Messages\030\002 \003(\01325."
                    + "com.dtstack.chunjun.format.protobuf.test"
                    + ".MessageItem\0320\n\016GroupInfoEntry\022\013\n\003key\030\001 "
                    + "\001(\t\022\r\n\005value\030\002 \001(\t:\0028\001b\006proto3"
        };
        com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
                new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() {
                    public com.google.protobuf.ExtensionRegistry assignDescriptors(
                            com.google.protobuf.Descriptors.FileDescriptor root) {
                        descriptor = root;
                        return null;
                    }
                };
        com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom(
                descriptorData, new com.google.protobuf.Descriptors.FileDescriptor[] {}, assigner);
        internal_static_com_dtstack_chunjun_format_protobuf_test_Variant_descriptor =
                getDescriptor().getMessageTypes().get(0);
        internal_static_com_dtstack_chunjun_format_protobuf_test_Variant_fieldAccessorTable =
                new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
                        internal_static_com_dtstack_chunjun_format_protobuf_test_Variant_descriptor,
                        new String[] {
                            "Boolx", "ValueBool2", "ValueInt32", "Booly", "Value2",
                        });
        internal_static_com_dtstack_chunjun_format_protobuf_test_MessageItem_descriptor =
                getDescriptor().getMessageTypes().get(1);
        internal_static_com_dtstack_chunjun_format_protobuf_test_MessageItem_fieldAccessorTable =
                new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
                        internal_static_com_dtstack_chunjun_format_protobuf_test_MessageItem_descriptor,
                        new String[] {
                            "TagName", "TagValue", "ExValues",
                        });
        internal_static_com_dtstack_chunjun_format_protobuf_test_MessageItem_ExValuesEntry_descriptor =
                internal_static_com_dtstack_chunjun_format_protobuf_test_MessageItem_descriptor
                        .getNestedTypes()
                        .get(0);
        internal_static_com_dtstack_chunjun_format_protobuf_test_MessageItem_ExValuesEntry_fieldAccessorTable =
                new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
                        internal_static_com_dtstack_chunjun_format_protobuf_test_MessageItem_ExValuesEntry_descriptor,
                        new String[] {
                            "Key", "Value",
                        });
        internal_static_com_dtstack_chunjun_format_protobuf_test_MessageTest_descriptor =
                getDescriptor().getMessageTypes().get(2);
        internal_static_com_dtstack_chunjun_format_protobuf_test_MessageTest_fieldAccessorTable =
                new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
                        internal_static_com_dtstack_chunjun_format_protobuf_test_MessageTest_descriptor,
                        new String[] {
                            "GroupInfo", "Messages",
                        });
        internal_static_com_dtstack_chunjun_format_protobuf_test_MessageTest_GroupInfoEntry_descriptor =
                internal_static_com_dtstack_chunjun_format_protobuf_test_MessageTest_descriptor
                        .getNestedTypes()
                        .get(0);
        internal_static_com_dtstack_chunjun_format_protobuf_test_MessageTest_GroupInfoEntry_fieldAccessorTable =
                new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
                        internal_static_com_dtstack_chunjun_format_protobuf_test_MessageTest_GroupInfoEntry_descriptor,
                        new String[] {
                            "Key", "Value",
                        });
    }

    // @@protoc_insertion_point(outer_class_scope)
}
